Classifier-free Guidance
2025年9月15日
15:26
初次接触扩散模型时,我们通常首先学习前向过程(从图像到噪声)和后向过程(从噪声到图像)。前向过程的图像通常是由噪声生成的,无需任何特定条件。然而,我们常常希望控制生成的图像,例如只生成狗或猫。
在这种情况下,我们需要引入条件控制 text condition y,这需要理解分类器引导和无分类器引导。
Classifier Guidance
从score function的角度,未引入 条件控制之前,我们需要学习每一步的score function,,引入条件控制之后,score function变成了

利用贝叶斯公式,可以分为两项,

上面的score funtion是推理时的score function的公式,由两项组成,一个是原始的score
funtion ,第二项是,这一项即classifier对输入x的梯度(而不是对classifier 参数的梯度)
similar to how gradient back-propagation is done during classifier model training, we calculate the gradient. The difference is that, while training a classifier model requires obtaining gradients of the weight parameters for updating via gradient descent, here we only need to retain the gradient with respect to the ‘input’.
此外,还可以通过引入超参数控制classifier guaidance的强度

Classifier Guidance 的核心是:通过一个额外训练的分类器,将 “类别信息” 注入扩散模型的去噪过程。具体来说,它利用贝叶斯公式将 “有条件 score”(给定类别y时的去噪梯度)分解为 “无条件 score”(无类别约束的去噪梯度)和 “分类器梯度”(类别对噪声样本的判别梯度)的组合,从而在推理时实现类别引导。
训练阶段的 score function
Classifier Guidance 的训练过程涉及两个独立的模型:

因此,训练阶段的 score function 是分离的:
关键结论
Classifier-free Guidance
Classifier-Free Guidance的核心是通过一个隐式分类器来替代显示分类器,而无需直接计算显式分类器及其梯度。
还是利用贝叶斯公式,score function可以写成下图的形式

上图也是推理时的score function,在训练阶段,
CFD 训练的核心是:让模型在同一网络中,通过 “随机切换条件输入(y 或 空)”,同时拟合有条件去噪 score和无条件去噪 score。

但是,不论是有条件场景还是无条件场景,神经网络需要拟合的都是第t步时的score function(或者说是第t步时的噪声),二者的拟合目标是一致的,




已使用 OneNote 创建。